const swaggerJSDoc = require('swagger-jsdoc');

const options = {
  definition: {
    openapi: '3.0.0',
    info: {
      title: 'ManageX API 文档',
      version: '1.0.0',
      description: 'ManageX 综合管理系统 API 接口文档',
      contact: {
        name: 'API 支持团队',
        email: 'support@managex.com'
      }
    },
    servers: [
      {
        url: '/api/v1',
        description: 'API 服务器'
      }
    ],
    components: {
      securitySchemes: {
        bearerAuth: {
          type: 'http',
          scheme: 'bearer',
          bearerFormat: 'JWT'
        }
      }
    },
    security: [{
      bearerAuth: []
    }],
    tags: [
      {
        name: '认证管理',
        description: '用户认证、登录、注册等接口'
      },
      {
        name: '用户管理',
        description: '用户信息管理相关接口'
      },
      {
        name: '权限管理',
        description: '用户权限和角色管理接口'
      },
      {
        name: '校园账户',
        description: '校园卡账户管理相关接口'
      },
      {
        name: '设备管理',
        description: '设备信息管理相关接口'
      },
      {
        name: '订单管理',
        description: '订单创建和管理相关接口'
      },
      {
        name: '支付管理',
        description: '支付处理和管理相关接口'
      },
      {
        name: '微信服务',
        description: '微信小程序和公众号相关接口'
      },
      {
        name: '小程序管理',
        description: '小程序应用管理相关接口'
      },
      {
        name: '文件管理',
        description: '文件上传下载和管理接口'
      },
      {
        name: '通知服务',
        description: '消息推送、短信、邮件通知接口'
      },
      {
        name: '队列管理',
        description: '异步任务队列管理接口'
      },
      {
        name: '缓存管理',
        description: '系统缓存管理相关接口'
      },
      {
        name: '会员等级',
        description: '会员等级设置和管理接口'
      },
      {
        name: '积分规则',
        description: '积分规则配置和管理接口'
      },
      {
        name: '积分交易',
        description: '积分变更和交易记录接口'
      },
      {
        name: '地图服务',
        description: '地理位置和地图相关接口'
      },
      {
        name: '应用管理',
        description: '系统应用和模块管理接口'
      }
    ]
  },
  apis: ['./src/routes/*.js']
};

module.exports = swaggerJSDoc(options); 